Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
Gerhop, если у игрока лишь 1 герой то можно сразу дать этот скилл
при подборе предмета разрешать его а при выпадении запрещать
тогда вроде кд будет сохранятся
если мне память не изменяет
а нафига так много ифов?
если каждый лвл даёт по 12 пробегов цикла то не проще ли написать
цикл от 1 до 12*лвл способности
только лвл способности в локалке хранить надо
ошибка в том что в цикле используется глобальная переменная A
когда триггер работает он каждую секунду увеличивает значение A на 1
если триггер был запущен дважды то каждую секунду A увеличивается на 2
как только A достигает лимита(12*лвл способности) все циклы использующие переменную A завершаются
для того чтобы избавиться от этого бага надо юзать локальные переменные
у нас есть куча статей по локалкам, циклам, и прочей фигне
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlot
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
кол-во итемов
ищем в каждом слоте один и тот же тип предмета. Этот код считывает кол-во итемов занимаемые в слотах
local integer id = ''//id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
//внизу начинается цикл, его блок
loop //начало цикла
exitwhen i > 5 //условие выхода из цикла
if GetItemTypeId(UnitItemInSlot(u,i)) == '' then //если тип в слоте равен ....
set c = c + 1
endif
set i = i + 1
endloop //конец цикла
кол-во предметов данного типа с N зарядами
local integer id = '' //id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
loop
exitwhen i > 5
if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then //если тип в слоте такой, и и у этого итема зарядов равно 5
set c = c + 1
endif
set i = i + 1
endloop
set u = null
В хаке есть функции переключения атаки (1 атака, 2 атака). В РО придется настроить атаки (цели атаки, тип атаки). Еще есть включения, можно включить одну из двух, а можно сразу одновременно две атаки включить. Это получше чем с орбом, ибо потом другой какой-нибудь орб не сможешь юзать. Есть отдельные функции смены типа атаки и защиты. Короче можно всю атаку подстроить (урон, кол-во костей, урон 1 кости, скорость снарядов и прочее). Практичски много чего вкусного и интересного есть
//тип защиты
function GetUnitArmorType takes unit u returns integer
function SetUnitArmorType takes unit u, integer id returns nothing
//защита
function GetUnitArmor takes unit u returns real
function SetUnitArmor takes unit u,real r returns nothing
//атаки (1 атака, 2 атака, или обе атаки)
function SetUnitAttackType takes unit u, integer i, integer attacknum returns nothing
//тип атаки
function SetUnitAttackType1 takes unit u, integer i returns nothing
function SetUnitAttackType2 takes unit u, integer i returns nothing
function GetUnitAttackType1 takes unit u returns integer
function GetUnitAttackType2 takes unit u returns integer
//
function SetUnitWeaponType takes unit u, integer i returns nothing
function GetUnitWeaponType takes unit u returns integer
Криэйтлян, xgm.guru/p/wc3/wc3bd
от тебя только мозг понадобится и хотя бы 1 рука
атачить можно через хэш/массив ssbbssc, твой вариант требует пробега по массиву
что не есть хорошо
особенно если массивов несколько
Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт
Автор похоже имеет виду переименованные типы брони и атаки. Например вместо "Герой" указана "Титан". Если да, то это легко настраивается в игровом интерфейсе (текст), а в игровых константах (значения атаки и брони)
Как делать спеллы, урон которых будет зависеть от стат?
Почитать статьи и хотя бы открыть редактор. Попытайся подумать/поискать сам вместо того чтоб искать туториалы к любому возникшему вопросу. Это не круто.
Я сам разобрался с проблемой. Конечно тут две новые появились, но на них забью уже:
ИИ не нравился герой, из-за него вообще никто не нанимался.
ИИ посчитал, что улучшив главное здание, он лишается главного здания, а значит нужно его снова строить. То есть, например, улучшив ратушу до крепости, он считает, что ратуши больше нет и необходимо построить ещё одну. Потом он крепость улучшит до замка, посчитает, что разрушили крепость, улучшит до крепости ратушу№2, снова потеряет ратушу и построит уже третью.
На сотом уровне сделай чтобы можно было выучить скилл на основе морфа сфинкса 'Aave' у силла настрой альтернативные и нормальные формы Юнита, флаг требуется оплата убери.
Когда Юнит выучит способность триггерно приказывай применить ее.
Чтобы при подборе меча игрались анимации для меча - можно укзать
Анимация - add animation tag to unit - first например. Будут проигрываться attack first, walk first и т.д. При отсутствии таковых будут играться бестеговые анимации.
Теги не какие попало добавляются, насколько я помню.
Используемые теги: fast, victory, first, second,third, fourth, fifth, swim, ready, alternate.
Возможно, в анимации "birth" в модели этого здания также через пробел написано "portrait". Убери слово "portrait" в анимации "birth" и добавь его в анимации "stand" или создай отдельную анимацию "portrait". Также косяк может быть в самой анимации "portrait", если косяк там, то опять же придётся добавить через пробел слово "portrait" к анимации "stand" или вручную создать новую анимацию "portrait", скопировав ключевые кадры из "stand", чтобы не париться.
Не берите вы эти ульты для основы своих скиллов, они сделаны через одно место лиж бы работали в капмании, а там дальше хоть потоп.
Сделайте заклинание из канала, а юнитов вокруг делайте неуязвимыми.
Может проще будет после постройки здания сделать reset animation - на trigger unit
Увы, не работает.
Одним словом, я просто взял модель виспа, удалил у него все анимации, кроме stand, импортировал в карту, прописав путь к файлу, как к файлу модели оригинального виспа.
Можно имитировать невидимость через прозрачность юнита. Примером этого есть Mortred из доты. Просто на время ставь герою прозрачность 100% или 99% и получится каст из невидимости. Но я не помню, буду ли прозрачными спецэффекты на герое. Так что мою версию решения еще нужно проверить.
это всего лишь имитация... к тому же враги будут палить героя в таком случае...
делай нестандартную невидимость...
вроде у Акамы (вождь дренеев из кампании) бы способность "постоянная невидимость"
если у меня убавить период срабатывания, то получиться что герой остаются всегда невидимым, даже если атакует и применяет заклинания...
используешь её за основу...
при активации способности, даёшь ему эту абилку...
а дальше уже добавляешь условия "выхода из невидимости", допустим, через N секунд после применения, или при атаке, при этом будет кастовать заклинания без палива...
Хз. Вставил твой скрипт- все работает. Может быть у тебя сбилась переменная bj_lastCreatedMultiboard или она ссылается на другой мультиборд? Или у тебя индексы криво иницализированы (0-11), а GetConvertedPlayerId(p) возвращает 1-12. Или может у тебя событие кривое или оно вообще отсутсвует? Короче скинь целиком скрипт.
вариант первый
делаем бд с мин/макс атакой всех юнитов
и в мультибоард отображаем данные из бд
второй вариант
через рб достаём данные из памяти
но ты второй вариант скорее всего не осилишь
про то как сделать то что я написал ты можешь прочесть там
В мультиборде нет ничего сложного, это как электронная таблица. И в ней есть ячейки. Хотя трудности доставляют местоположение строки / столбцы (ряды), и ряд условии.
Когда делаешь, приходится часто смотреть что где находится. Самый простенький не трудно сделать. Но было адски трудно сделать одну вещь: помню делал так: сверху находилась строчка обозначающая статы (иконки голды, дерева, буковки типа К-кол-во убийство и прочее). Далее две команды, сверху над строчками игроков есть строчки с названием команды (пример зло и добро). Получилось так, две первые строчки занимают статы и название первой команды добра. Надо определить номер строчки игроку, вот получится смещение на две строчки. Такжн у меня были проверки на то, что если игрок не бот и он не играет, то его строчка отсутствует и по номеру игрока поэтому орентироваться было сложновато, так как будет опять смещение строки. а еще в серединке вот эта строчка с надписью зло. То есть еще будет одно смещение вниз строчек игроков, играющие за вторую сторону. Этот мультиборд бы наподобии мультиборда из доты. Представляете еще можно сделать так, что игрок убивший больше всего юнитов был на самом верху, в то время игрок с самым меньшим кол-во убийства внизу, и каждый раз менялось положение. Вот было сложно построить код. Дня два мучился. Но успешно сделал. Пришлось использовать переменную с массивом, чтобы в будущем узнавать номер строки игрока. Нужно больше практики
xgm.guru/p/wc3/getlocalplayerполезно будет еще вот это, если хочешь сделать так, чтобы один игрок видел одно в мультиборде, в то время другой видел другое
Для каждого дерева нужны три модели: обычная, неактивная (с названием Doodads\Terrain\AshenTree\AshenTree0S.mdx, например) и неактивная разрушенная (Doodads\Terrain\AshenTree\AshenTree0D.mdx). У неактивных моделей должна быть только одна анимация — Stand. У первой — только деревце, у второй — только пенёк, соответственно.
Когда с деревом никто не взаимодействует, отображаются неактивные модели. Ты их не заменил, потому такая вот фигня.
Как сделать полноценно работающие деревья с моделями, не заменяющими стандартные, я не знаю. Возможно, никак.
ну вот в чём твоя ошибка: Ты изменил название текстуры, а значит ты изменил и пути, тебе нужно зайти в war3modelEditor и там уже открыв модель выбрать вкладку: Windows=>Texture Manager, где будет список текстур, ты удаляешь 1 старую текстуру, которая у тебя была и добавляешь новую, при этом модель с текстурой должны лежать в одной папке, которая не содержит кириллицы (например путь должен быть d:\Users\User\Desktop\moroz - без русских букв ).
Переименовать новую текстуру на старую по идее не имеет смысла, потому что опять же ты сохранил её без текстуры, а => испоганил, накосячил, сломал (называй как хочешь).
Через что уничтожаешь? Если через килл, то конечно умирает и нейтральный.
Если наносить от какого-то даммика урон в мильены, то не умрет нейтральный.
Можно от даммика развеяние нежити за 0.01 сек.
Заменять можно, внося значение золота в переменную и потом, создавая новый рудник, ставить количество золота в него из переменной, благо это даже в ГУИ реализовано.
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
» WarCraft 3 / Как извлекать модели из WoW дренор?
» WarCraft 3 / Кулдаун на способность
» WarCraft 3 / Патроны в Инвентаре
» WarCraft 3 / как проверить есть ли предмет у юнита?
» WarCraft 3 / Тип атаки)
» WarCraft 3 / Классы предметов
» WarCraft 3 / Формулы высоты
» WarCraft 3 / Атаки волнами
» WarCraft 3 / Morth
» WarCraft 3 / Анимация здания
» WarCraft 3 / Помогите найти модель из вов
» WarCraft 3 / По поводу утечек....
» WarCraft 3 / Ошибка синтаксиса
» WarCraft 3 / Невидимость скилла
» WarCraft 3 / Мультиборды
» WarCraft 3 / Редактор Моделей
» WarCraft 3 / WoW Model Viewer
» WarCraft 3 / Проблемы с сохраненной картой